/**
 * 
 */
package com.hanhai.zrb.api.client.facade;

import java.util.Date;
import java.util.List;
import java.util.Map;

import javax.jws.WebService;

import com.hanhai.zrb.api.client.result.CollectionResult;
import com.hanhai.zrb.model.user.UserStatisticDetail;
import com.hanhai.zrb.model.usercenter.CommonStatistic;
import com.hanhai.zrb.model.usercenter.IntentionStatistic;
import com.hanhai.zrb.model.usercenter.MyList;

/**
 * @author ricky
 *
 */
@WebService
public interface UserStatisticDetailFacade {

	/**
	 * 根据�?大时间�?�序获取用户关注的项目列�?
	 * 
	 * @param userId
	 * @param maxCreateTime
	 * @param limit
	 * @return
	 */
	public List<CommonStatistic> getUserCollectionProjects(Long userId,Date maxCreateTime,Integer limit);

//	/**
//	 * 分页查询用户关注的项�?
//	 * 业务功能如下
//	 * 1、匹配的是项目列表，
//	 * 2、计算了收藏总数�?
//	 * 3、赋值了用户收藏的时间�??
//	 * @param dto
//	 * @return
//	 */
//	public CollectionResult getUserCollectionProjectPage(UserStatisticDetailDto dto);
	
	/**
	 * 关注，传递收藏对象指定用户id：uid，收藏类型：type，收藏id：infoId
	 * 
	 * 1、为用户添加收藏�?
	 * 2、记录收藏�?�数
	 * @param userCollection
	 * @return
	 */
	public CollectionResult doCollectionAdd(UserStatisticDetail userCollection);
	
	/**
	 * 取消关注�?
	 * 传�?�收藏对象指定用户id：uid，收藏类型：type，收藏id：infoId
	 * 
	 * 1、为用户取消关注�?
	 * 2、减少收藏�?�数
	 * 
	 * @param userCollection
	 * @return
	 */
	public CollectionResult doCollectionCancel(UserStatisticDetail userCollection);
	
	
	public List<CommonStatistic> getUserCollectionFund(Long userId,Date maxCreateTime,Integer limit);
	
	
	public List<IntentionStatistic> getUserCollectionIntention(Long userId,Date maxCreateTime,Integer limit);
	
	public List<MyList> getMyProjects(Long userId,Date pushTime,Integer limit);
	
	public List<MyList> getMyFunds(Long userId,Date pushTime,Integer limit);
	
	public Map<String,Object> getStatisticMap(Long uid);
	

}
